home *** CD-ROM | disk | FTP | other *** search
-
- ; TAG.ASM
- ;
- ; Tag for PARNET.DEVICE (Parallel Port Network)
- ;
- ; Provides unit vectoring of commands and C layering.
-
- include "exec/types.i"
- include "exec/exec.i"
- include "exec/resident.i"
-
- section text,code
-
- xref _LVORemTask
-
- xref _CDevInit ; C routines for assembly tags
- xref _CDevOpen
- xref _CDevClose
- xref _CDevExpunge
- xref _LinkerDB ; Lattice C linker A4 base (ea)
-
- xref _CParNetTask
-
- xref _UnitControlOpen
- xref _UnitDGramOpen
- xref _UnitStreamOpen
-
- xdef @ParNetTask
- xdef _ParNetTask
-
- moveq.l #-1,D0
- rts
-
- InitDesc:
- dc.w RTC_MATCHWORD
- dc.l InitDesc
- dc.l EndCode
- dc.b 0 ; not auto-init
- dc.b 2 ; version
- dc.b NT_DEVICE
- dc.b 0 ; priority
- dc.l _DeviceName
- dc.l _IdString
- dc.l _DevInit
- dc.l 0 ; extra ?
- dc.l 0
- dc.l 0
-
-
- section __MERGED,DATA
-
- xdef _DeviceName ; tag strings
- xdef _IdString
- xdef _DeviceVectors ; device vectors
- xdef _UnitVectors
-
- _DeviceName: dc.b 'parnet.device',0
- _IdString: dc.b 'parnet.device 2.0 (23 Dec 1990)',13,10,0
-
- ds.l 0
-
- _DeviceVectors:
- dc.l _DevOpen
- dc.l _DevClose
- dc.l _DevExpunge
- dc.l 0
- dc.l _DevBeginIO
- dc.l _DevAbortIO
- dc.l -1
-
- _UnitVectors:
- dc.l _UnitControlOpen
- dc.l _UnitDGramOpen
- dc.l _UnitStreamOpen
-
- EndCode:
- section text,code
-
- _DevInit: movem.l A0/A4,-(sp) ; A0=segment
- lea _LinkerDB,A4 ; Lattice C
- jsr _CDevInit
- movem.l (sp)+,A0/A4
- rts
-
- _DevOpen: movem.l D0/D1/A1/A4,-(sp) ; D0=unit, D1=flags, A1=iob
- lea _LinkerDB,A4
- jsr _CDevOpen
- addq.l #4,sp
- movem.l (sp)+,D1/A1/A4
- rts
-
- _DevClose: movem.l A1/A4,-(sp) ; A1=iob
- lea _LinkerDB,A4
- jsr _CDevClose
- movem.l (sp)+,A1/A4
- rts
-
- _DevExpunge: move.l A4,-(sp) ;
- lea _LinkerDB,A4
- jsr _CDevExpunge
- move.l (sp)+,A4
- rts
-
- _DevBeginIO: movem.l A1/A4,-(sp) ; A1=iob
- move.l IO_UNIT(A1),A0 ; vector through unit
- move.l LN_SIZE(A0),A0 ; (see defs.h/Unit)
- lea _LinkerDB,A4
- jsr (A0)
- movem.l (sp)+,A1/A4
- rts
-
- _DevAbortIO: movem.l A1/A4,-(sp) ; A1=iob
- move.l IO_UNIT(A1),A0 ; vector through unit
- move.l LN_SIZE+4(A0),A0 ; (see defs.h/Unit)
- lea _LinkerDB,A4
- jsr (A0)
- movem.l (sp)+,A1/A4
- rts
-
- @ParNetTask:
- _ParNetTask:
- lea _LinkerDB,A4
- jsr _CParNetTask
- move.l 4,A6
- sub.l A1,A1
- jsr _LVORemTask(A6)
- rt jmp rt
-
-
-
- END
-
-